<?php namespace Admin\Controller;
use Hdphp\Controller\Controller;
/*
 * 分类管理控制器
 */ 
class CateController extends CommonController{
	private $model;
	public function __init(){
		//调用CommonController里面的构造函数
		parent::__init();
		//实例化Cate模型
		$this->model = new \Common\Model\Cate;
	}
	//展示分类
	public function index(){
		//1.获得所有的分类 关联type表
		$data = $this->model->join('type','type_tid','=','tid')->get();
		//2.把数据变为树状结构
		$data = Data::tree($data,'cname');
		//3.分配数据
		View::with('data',$data);
		//载入模板
		View::make();
	}
	//添加分类
	public function add(){
		if(IS_POST){
			//未添加成功
			if(!$this->model->store()) View::error($this->model->getError());
			View::success('添加成功',U('index'));		
		}
		//1.处理"所属类型" 得到类型
		$model = new \Common\Model\Type;
		$TypeData = $model->get();
		//分配数据
		View::with('TypeData',$TypeData);	
		//载入模板
		View::make();
	}
	//添加子分类
	public function addSon(){
		if(IS_POST){
			//添加未成功
			if(!$this->model->store()) View::error($this->model->getError());
			View::success('添加成功',U('index'));
		}
		//1.获得"所属分类"
		$cid = Q('get.cid',0,'intval');
		//2.查询cid,cname,type_tid字段
		$parent = $this->model->field('cid,cname,type_tid')->where("cid={$cid}")->find();
		//分配数据
		View::with('parent',$parent);
		//载入模板
		View::make();
	}
	//编辑分类
	public function edit(){
		//5.修改
		if(IS_POST){
			//修改成功
			if($this->model->edit()) View::success('修改成功',U('index'));
			View::error($this->model->getError());
		}	
		//1.接收$_GET过来的cid
		$cid = Q('get.cid',0,'intval');
		//2.获得旧内容
		$oldData = $this->model->where("cid={$cid}")->find();
		//分配数据
		View::with('oldData',$oldData);
		//3.处理"所属分类",不能是自己和自己的子集
		$cateData = $this->model->getNoMy($cid);
		View::with('cateData',$cateData);
		//4.处理"所属类型"
		$model = new \Common\Model\Type;
		$TypeData = $model->get();
		View::with('TypeData',$TypeData);	
		//载入模板
		View::make();
	}
	//删除分类
	public function del(){
		//1.接收cid
		$cid = Q('get.cid',0,'intval');
		//2.获得要删除的分类的pid pluck获得指定的字段值
		$pid = $this->model->where("cid={$cid}")->pluck('pid');
		//3.让子类上移一位，就是把子集分类的pid变成要删除分类的pid
		$this->model->where("pid={$cid}")->save(array('pid'=>$pid));
		//4.删除对应的分类
		$this->model->where("cid=$cid")->delete();
		View::success('删除成功');
	}
}
	
?>